package com.zhuiyun.project.api.courseSubscribe.service;

import com.zhuiyun.project.api.courseSubscribe.entity.CourseSubscribe;
import com.zhuiyun.project.api.courseSubscribe.model.CourseSubscribeModel;
import com.zhuiyun.project.api.courseSubscribe.model.CourseUpdateStatusModel;
import com.zhuiyun.project.common.errorCode.CommonException;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.utils.pageUtil.PageRequest;
import org.springframework.web.multipart.MultipartFile;

/**
 * @ClassName CourseSubscribeService
 * @Description TODO
 * @Author 胡家浩
 * @Date 2024/5/31 9:55
 **/
public interface CourseSubscribeService {

    /**
    * @Author 胡家浩
    * @Description 查询约课信息
    * @Date 2024/5/31 10:39
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param pageRequest
* @param venueUniqueIdentifier
* @param courseName
    */
    CommonResult getCourseList (PageRequest pageRequest,String venueUniqueIdentifier,String courseName);
    /**
    * @Author 胡家浩
    * @Description getCourseInfoById
    * @Date 2024/5/31 15:33
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param id
* @param venueUniqueIdentifier
    */
    CommonResult getCourseInfoById (String id,String venueUniqueIdentifier);
    
    /**
    * @Author hjh
    * @Description 添加约课信息
    * @Date 2024/5/31 16:28
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param courseSubscribe
    */
    CommonResult addCourse (MultipartFile[] multipartFiles,CourseSubscribeModel courseSubscribe) throws CommonException;

    /**
    * @Author hjh
    * @Description 更新课程状态
    * @Date 2024/6/3 9:38
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param courseSubscribeModel
    */
    CommonResult updateCourseStatus (CourseUpdateStatusModel courseSubscribeModel) throws CommonException ;

    /**
    * @Author hjh
    * @Description 更新课程信息
    * @Date 2024/6/3 11:19
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param courseSubscribeModel
     * @param files
    */
    CommonResult updateCourseById (MultipartFile [] files,CourseSubscribeModel courseSubscribeModel) throws CommonException;

    /**
    * @Author hjh
    * @Description 删除课程信息
    * @Date 2024/6/3 15:03
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param id
* @param venueUniqueIdentifier
    */
    CommonResult delCourse (Integer id,String venueUniqueIdentifier);
}
